1. Technical Field
The present invention relates generally to systems for expanding random access memory (RAM) capabilities on a computer system, and more specifically relates to a portable RAM module that can be externally connected to a computer system to provide increased RAM capabilities.
2. Related Art
As the use of personal computers (i.e., desktops, laptops, workstations, PDA's, etc.) continues to flourish, the capabilities and deliverable expectations of software applications also continues to dramatically increase. In line with these increased capabilities, the hardware resources required to run these applications have also dramatically increased. Not long ago, 32 Megabytes (MB) of RAM would suffice for most processing needs. Over time, 64 MB, then 128 MB, then 256 MB, all came and went as sufficient processing configurations, and these days even 512 MB often does not suffice.
For an organization that uses thousands of desktops, the management of hardware upgrades is far more expensive and time consuming than associated software upgrades. The process of upgrading hardware can often have a huge impact on employee productivity—a developer could lose the whole morning while waiting for an upgrade to take place. Typically, these organizations have a “standard configuration” defined for a time period, which they try to upgrade with time, e.g., a standard configuration may comprise 256 MB of memory and a PENTIUM™ 3 processor. This standard configuration is reviewed and updated on a year to year basis.
More often than not, additional memory requirements are intermittent. That is, a user may require additional memory to carry out a part of his job for some period of time. For example, for a group of machines being used for application development and support, the processing power requirement spikes during the time of an application release, which could be three or four months of year. On other occasions, e.g., when a user needs to edit large files, such as a several gigabyte (GB) video file, or even huge worksheets, the user may need more memory. However, this requirement is often short-lived as the additional memory may not be required after the specific operation.
A common approach to handle this issue is to purchase and install additional RAM. Unfortunately, upgrading RAM is a relatively costly process as the memory upgrade process requires the computer chassis to be opened and the RAM module installed in each of the machines. This activity requires a level of hardware knowledge and cannot be carried out by a typical end user. Moreover, if the user has more than one machine that has intermittent RAM requirements from time to time, then all the machines will have to be upgraded, as there is no technology in place to share memory.
Another approach could be that the user procures RAM for one machine and then manually removes it and plugs it on other machines as required. As pointed out earlier, this requires a level of expertise and the RAM slots are likely to be damaged if the RAM is frequently removed and installed.
Furthermore, the price of the upgrade may be dictated by the number of free RAM slots in the machine. If the machine has only two RAM slots available, and it already has two memory modules of 128 MB each installed, then the user would need to buy a fresh 512 MB memory module or two memory modules of 256 MB each to upgrade to 512 MB. Even though the upgrade is from 256 MB to 512 MB, the user would end up paying for the entire 512 MBs.
At first look, “grid computing” seems to be a likely solution that could address the problem in future. A grid creates a virtual super computer out of existing workstations by knitting them together. This super computer can be used to host business applications at lightening speeds. A grid application can offload a quantum of its work to any other node that has free resources available. These new breed of applications are capable of harnessing the processing power of other free machines “On Demand.”
Unfortunately, grid computing addresses a different, although very important, aspect of the problem. The applications that are supposed to run on the grid need to be specially written and deployed for that purpose. If an end user needs additional memory for editing a large video file, the user cannot use the grid unless that video editing software is grid enabled. Moreover, even if the application is grid enabled, the user would need to link with a grid provider and have that application deployed on the grid.
There is currently no technology that enables different workstations or laptops to share memory. There are some new technologies that would let applications share the processing power of other machines on the network, but the problem of additional memory requirements would continue to exist in the near future. Accordingly, a need exists for a cost effective solution for intermittently upgrading RAM on personal computers.